package com.demo.common.ratelimit.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

import static java.lang.annotation.ElementType.METHOD;

/**
 * @author 001
 */
@Documented
@Inherited
@Target({METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiIdempotent {
    /**
     * 过期时间
     */
    long expire() default 3L;

    /**
     * 时间单位
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;

    /**
     * 额外key的拼接
     */
    String extra() default "";

    /**
     * 是否立马释放
     */
    boolean release() default false;
}
